Since the discovery of Shannon theorem the work on error coding has focused towards finding good codes which perform as close as possible to channel capacity and have a relatively simple encoder and decoder structure. The breakthrough discovery in the last decade of iteratively decoded Forward Error Correction codes has made possible the design of codes which approach channel capacity with limited hardware complexity. The class of iteratively-decoded capacity-approaching codes includes the so-called LDPC codes and turbo codes.
Well designed codes in this class closely approach channel capacity, with a very steep Bit Error Rate or Frame Error Rate curve versus the Signal-to-Noise Ratio (SNR). However, a change of slope in the BER (or FER) curve is often observed, leading to poorer performance at high SNR values. This phenomenon is the so called “error floor” onset.
Existing methods trying to minimize the error floor have focused either on code design techniques, or on decoder modifications and post processing of decoder output. Post processing is based on removal of weak code features which have been previously identified with semi-analytical methods on the code under analysis, decoder modifications often involve slowing the convergence of the decoder. An additional solution which is widely used is to add an outer algebraic code to remove the residual bit errors.
More complex decoder modifications address the problem by modifying the decoding algorithm to include, in the iterative decoding, a step for reinitializing the decoder with a more reliable error estimate.
Code design techniques are based on semi-analytical methods, which attempt to identify all weak structure in the code design phase. These results are either used to improve the code design or to post process the decoder output to remove weak structures. A drawback affecting this approach is that, from moderate block length, i.e. code block lengths exceeding few hundred bits, the exhaustive search of all weak structures is not feasible, and even heuristic algorithms which attempt to search for weak structures are ineffective above approximately 1000 bits. The result is that, for longer codes which are of practical interest, some of the weak structures in the code will not be noticed, resulting in an error floor in the high SNR/low BER region.
The known concatenation of an outer algebraic code to remove residual bit errors is an effective solution if and only if the dominant contribution to the high SNR BER (or FER) curve is due to error events with a low number of bits in error, where the term “low” means within the error correction capability of the outer code. It is important to note that the error correction capability of the outer code can be increased at the expense of an increased overhead.
This different approach will however fail in two cases: either when the FER curve is dominated by failed blocks with a high number of bit errors, or in the case when the FER curve is not dominated by these events, but the BER curve is, i.e. where a low number of blocks, decreasing with increasing SNR, is contributing with a large number of bits in error.
Methods involving decoder modifications which reinitialize the iterative decoding algorithm with a more reliable estimate, i.e. those obtained by using a soft-input soft-output iterative estimator, are on the contrary affected by convergence problem both in the estimator used and in the iterative decoding itself; these methods also present, as a further drawback, a great hardware complexity.